package com.ruoyi.business.service;

import com.ruoyi.business.domain.Business;

import java.util.List;

/**
 * 基础业务Service接口
 * 
 * @author xx
 * @date 2020-03-16
 */
public interface BusinessService {
    /**
     * 查询基础业务
     * 
     * @param id 基础业务ID
     * @return 基础业务
     */
    Business selectBusinessById(Long id);

    /**
     * 查询基础业务列表
     * 
     * @param business 基础业务
     * @return 基础业务集合
     */
    List<Business> selectBusinessList(Business business);

    /**
     * 新增基础业务
     * 
     * @param business 基础业务
     * @return 结果
     */
    int insertBusiness(Business business);

    /**
     * 修改基础业务
     * 
     * @param business 基础业务
     * @return 结果
     */
    int updateBusiness(Business business);

    /**
     * 批量删除基础业务
     * 
     * @param business 需要删除的数据ID
     * @return 结果
     */
    int deleteBusinessByIds(Business business);

    /**
     * 删除基础业务信息
     * 
     * @param id 基础业务ID
     * @return 结果
     */
    int deleteBusinessById(Long id);

    /**
     * 修改状态
     * @param business
     * @return
     */
    int changeStatus(Business business);

    /**
     * 校验业务编号是否唯一
     * @param businessCode 业务编号
     * @return 0-n
     */
    int checkBusinessCodeUnique(String businessCode);

    /**
     * 根据用户id查询业务信息
     * @param userId 用户id
     * @param businessType 业务类型
     * @param rechargeChannel 充值通道
     * @return 结果
     */
    Business selectBusinessByUserId(Integer businessType, Integer rechargeChannel, Long userId);

    /**
     * 根据用户id查询该用户开通的业务value集合
     * @param userId
     * @return
     */
    List<Integer> selectBusinessTypesByUserId(Long userId);

    /**
     * 根据用户id查询该用户开通的话费充值业务通道类型value集合
     * @param userId
     * @return
     */
    List<Integer> selectRechargeChannelsByUserId(Long userId);
}
